With continuously increasing processing capabilities of computers and increasing proliferation of computers in offices and homes, computers have become valuable tools that are used to perform a variety of tasks. For example, computers are widely used for office applications, imaging and video processing, personal communications, purchasing and sales, and information services.
Data processing devices for the above or other applications may include a variety of computing devices, including desktop or personal computers, lap-top computers, palm-top computers, personal digital assistants (PDA), and mobile communication devices such as mobile telephones or mobile communicators.
Further, a growing number of the applications described above involve communication networks that link a plurality of data processing devices. These individual data processing devices may be at arbitrary locations. Thus, a data processing device used to provide a service, such as a server maintaining data that can be accessed through a communication network, may be located at a first location, while another data processing device that uses the service, such as a client operated by a user who wants to retrieve the data from the server, may be located at a second, remote location. A server may be arranged to be accessed by a number of clients.
A user operating a client could connect to a server or network of servers using personal identification information, and input commands to access data maintained at the server or the network of servers. The personal information may be email, a text document, images or another type of information. For example, a user at a client could also access a server in a company-wide local-area network, and input commands to access, retrieve or manipulate data of the user's workgroup. The server could in turn provide desired information for display at the client.
This exchange of information between clients and servers is enabled by a computer program that provides access and control of data at the server. For example, a text processing program can access a text document, and an email program can access email.
To maintain privacy and to provide a user with control of the computer program, each user launches an instance of the computer program at the server (i.e., an instance of a service program) and controls execution of the service program through the client, for example, by inputting commands at the client. The service program at the server may be run in connection with or constitute at least part of an operating system that involves elements located at the server and at the client.
In the above exemplary cases, information from the service program can be displayed at the client for the user. This display of information may include, for example, the display of a screen with menu information, the presentation of message strings or notifications during the execution of the service program, or the display of another type of dialogue or information that allows the selection and manipulation of data and the execution and control of the service program.
For example, a text processing program displays a frame on a video display including command buttons, a region for displaying a text document, a region for displaying status information, and other kinds of information. During execution of the text processing program, the text processing program may inform the user about certain states of the data processing device, of the program, or of accessed data. For example, when data is being stored, the text processing program may prompt the user to make a selection of a format for storing data, to make a selection of a storage location, or may notify the user regarding the status of a storage device.
The service program an display information about controlling execution of the program or notifications, for example, using image buttons that contain text information. This text information may provide information, for example, about a specific function that can be activated when selecting the image button. A user can select the image button by clicking on the image button using a mouse and cursor device.
Regardless of whether the service program is executed on a stand-alone computer or on a plurality of data processing devices (e.g., in a client and server environment), it is possible that different users are located in different language areas or have different language preferences. Therefore, text information that is displayed to a user at a client should be provided in a language that is understood or preferred by that particular user. Accordingly, it is desirable to users that computer programs are offered in different languages or provide different language preferences that are selectable by a user, for example during installation of a computer program.
A conventional approach for providing a computer program that displays textual information in different languages, is to maintain different versions of the computer program's source code. In that case, each version of the source code contains text elements in a particular language, so that a particular version accommodates users with a particular language preference. The different version of the source code are then compiled to create executable versions of the computer program for the different languages. While this approach may be feasible in connection with smaller programs, maintaining different versions of larger programs or programs that have a large number of components (e.g., an operating system or a large service program) requires considerable resources. Also, since computer programs are subject to constant development with new versions being released to accommodate improvements or new functionality, under this conventional method, each version of the program's source code needs to be modified with each improvement. For example, if a service program is to be operable in twenty language environments, then twenty versions of the service program's source code need to be modified with each improvement under the conventional approach.